<?php

class Ajax extends TPage {

//<editor-fold defaultstate="collapsed" desc="Eliminar">
    private function eliminar() {
        $retorno = "";
        $id = urldecode($this->Request["id"]);
        $urlRespuesta = urldecode($this->Request["urlRespuesta"]);
        $parametrosUrlRespuesta = urldecode($this->Request["parametrosUrlRespuesta"]);
        $json = "";

        try {
            $oUsuarioBLL = new UsuarioBLL();
            $mensaje = "";
            $tipoMensaje = "";

            $resultado = $oUsuarioBLL->eliminar($id);
            $id = "-1";

            if (!Util::isNullOrEmpty($resultado) && !is_numeric($resultado)) {
                $tipoMensaje = Util::MENSAJE_ERROR;
                $mensaje = $resultado;
            } else {
                $tipoMensaje = Util::MENSAJE_OK;
                $mensaje = "El registro fue eliminado con &eacute;xito";
            }

            $arrParametros = json_decode($parametrosUrlRespuesta);
            $arg = Util::encriptarUrl(array(
                        "id" => $id,
                        "tipoMensaje" => $tipoMensaje,
                        "mensaje" => $mensaje,
                        "tipoUsuario" => $arrParametros->tipoUsuario
                            )
            );

            $json .="{";
            $json .=" \"urlRespuesta\":\"" . Util::escaparComillasJS($urlRespuesta . "&a=" . $arg) . "\"";
            $json .="}";

            $retorno = $json;
        } catch (Exception $e) {
            $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="DibujarGaleriaImagenes">
    private function dibujarGaleriaImagenes() {
        $retorno = "";
        $idEscort = urldecode($this->Request["idEscort"]);
        $tipoRecurso = urldecode($this->Request["tipoRecurso"]);
        $nombreContenedor = urldecode($this->Request["nombreContenedor"]);
        $path = urldecode($this->Request["path"]);
        $themeBaseUrl = urldecode($this->Request["themeBaseUrl"]);
        $prefijoControl = urldecode($this->Request["prefijoControl"]);
        $htmlSinRegistro = "<span class=\"da-form-label\"><i>No tiene im&aacute;genes asociadas</i></span>";
        $template = "";
        $templateAux = "";
        $html = "";
        $funcionEliminar = "";

        try {
            $json = array(
                "idEscort" => $idEscort,
                "tipoRecurso" => $tipoRecurso,
                "nombreContenedor" => $nombreContenedor,
                "path" => $path,
                "themeBaseUrl" => $themeBaseUrl,
                "cargaInicial" => false,
                "idRecurso" => "{#ID_RECURSO}",
                "prefijoControl" => $prefijoControl
            );
            $json = json_encode($json);
            $funcionEliminar = "wre_eliminar(" . $json . ");";

            $template .= "<li>";
            $template .= "  <a href=\"{#IMG}\" rel=\"prettyPhoto[" . $tipoRecurso . "]\"><img src=\"{#IMG}\" alt=\"\" style=\"width:70px;height:70px;\"></a>";
            $template .= "  <span class=\"da-gallery-hover\">";
            $template .= "    <ul>";
            $template .= "      <li class=\"da-gallery-delete\"><a href=\"javascript:;\" onclick=\"" . htmlentities($funcionEliminar) . "\"><i class=\"icon-bin\"></i></a></li>";
            $template .= "    </ul>";
            $template .= "  </span>";
            $template .= "</li>";

            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($idEscort, Tipo_recurso::IMAGEN, $tipoRecurso);

            if (count($arrRecurso) == 0) {
                $retorno = $htmlSinRegistro;
            } else {

                $retorno .= "<div class=\"with-padding\">";
                $retorno .= "  <div class=\"da-gallery prettyPhoto\" style=\"padding-top:10px;\">";
                $retorno .= "    <ul>";

                foreach ($arrRecurso as $oRecurso_escort) {
                    $templateAux = $template;
                    $templateAux = str_replace("{#IMG}", $path . $oRecurso_escort->getSrc(), $templateAux);
                    $templateAux = str_replace("{#ID_RECURSO}", $oRecurso_escort->getId(), $templateAux);
                    $retorno .= $templateAux;
                }

                $retorno .= "    </ul>";
                $retorno .= "  </div>";
                $retorno .= "</div>";
            }
        } catch (Exception $e) {
            $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="EliminarRecursoEscort">
    private function eliminarRecursoEscort() {
        $retorno = "";
        $idEscort = urldecode($this->Request["idEscort"]);
        $tipoRecurso = urldecode($this->Request["tipoRecurso"]);
        $nombreContenedor = urldecode($this->Request["nombreContenedor"]);
        $path = urldecode($this->Request["path"]);
        $themeBaseUrl = urldecode($this->Request["themeBaseUrl"]);
        $idRecurso = urldecode($this->Request["idRecurso"]);
        $prefijoControl = urldecode($this->Request["prefijoControl"]);
        $json = "";

        try {
            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arr = $oRecurso_escortBLL->obtenerPorId($idRecurso);
            $oRecurso_escort = new Recurso_escort();
            $oRecurso_escort = $arr;
            $resultado = $oRecurso_escortBLL->eliminar($idRecurso);

            //elimina archivo del disco
            $rutaImagen = str_replace($themeBaseUrl, "", $path);
            $rutaImagen = str_replace("/", DIRECTORY_SEPARATOR, $rutaImagen);
            $directorioAplicacion = Util::obtenerDirectorioBaseAplicacion();
            $rutaImagen = $directorioAplicacion . "themes" . DIRECTORY_SEPARATOR . "user" . $rutaImagen;
            $rutaImagenThumb = $rutaImagen . "thumbs" . DIRECTORY_SEPARATOR;
            $rutaImagen = $rutaImagen . $oRecurso_escort->getSrc();
            $rutaImagenThumb = $rutaImagenThumb . $oRecurso_escort->getSrc();
            if (file_exists($rutaImagen)) {
                unlink($rutaImagen);
                if(strtolower($tipoRecurso) == "perfil"){
                    unlink($rutaImagenThumb);
                }
            }

            $json = array(
                "idEscort" => $idEscort,
                "tipoRecurso" => $tipoRecurso,
                "nombreContenedor" => $nombreContenedor,
                "path" => $path,
                "themeBaseUrl" => $themeBaseUrl,
                "cargaInicial" => false,
                "prefijoControl" => $prefijoControl
            );
            $json = json_encode($json);
            $retorno = $json;
        } catch (Exception $e) {
            $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="ObtenerRegiones">
    private function obtenerRegiones() {
        $retorno = "";
        $callback = $this->Request["callback"];
        $json = "";

        try {
          $tipo = "Region";
          $filtro = "-1";
          $retorno = Util::obtenerJSONjCombo($tipo, $filtro, $callback);
        } catch (Exception $e) {
          $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="ObtenerComunasPorRegion">
    private function obtenerComunasPorRegion() {
        $retorno = "";
        $callback = $this->Request["callback"];
        $idRegion = $this->Request["id"];
        $json = "";

        try {
          $tipo = "ComunasPorRegion";
          $retorno = Util::obtenerJSONjCombo($tipo, $idRegion, $callback);
        } catch (Exception $e) {
          $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="ObtenerPagosPorUsuario">
    private function obtenerPagosPorUsuario() {
        $retorno = "";
        $idUsuario = urldecode($this->Request["id"]);
        $nombreTabla = urldecode($this->Request["nombreTabla"]);
        $htmlSinRegistro = "<span class=\"da-form-label\"><i>No tiene pagos asociadas</i></span>";

        try {
            $oPago = new Pago();
            $oPagoBLL = new PagoBLL();
            $oPago->setIdUsuario($idUsuario);
            $arr = $oPagoBLL->listar($oPago);

            if (count($arr) == 0) {
                $retorno = $htmlSinRegistro;
            } else {

              $retorno .="<table id=\"".$nombreTabla."\" class=\"da-table\">";
              $retorno .="  <thead>";
              $retorno .="    <tr>";
              $retorno .="      <th>Fecha</th>";
              $retorno .="      <th>Monto</th>";
              $retorno .="      <th>Detalle</th>";
              $retorno .="      <th>Comisi&oacute;n</th>";
              $retorno .="      <th>Opciones</th>";
              $retorno .="    </tr>";
              $retorno .="  </thead>";
              $retorno .="  <tbody>";

              foreach ($arr as $oPago) {
                $intIdPago = $oPago->getId();
                $intIdUsuario = $oPago->getIdUsuario();
                $strFechaPago = $oPago->getFechaPago();
                $strMonto = $oPago->getMonto();
                $strDetalle = $oPago->getDetalle();
                $strComisionAQuien = $oPago->getComisionAQuien();
                $strComisionPorcentaje = $oPago->getComisionPorcentaje();
                $strComisionMonto = $oPago->getComisionMonto();
                $strComision = "";
                $strOpciones = "";

                //formatea valores
                $strFechaPago = Util::isDatetimeEmpty($strFechaPago, "");
                if (!Util::isNullOrEmpty($strFechaPago)) {
                  $strFechaPago = Util::fechaDateTimeAISO($strFechaPago);
                }
                $strMonto = "$".Util::formatearConSeparadorMiles($strMonto);

                if (!Util::isNullOrEmpty($strComisionAQuien)){
                  $strComisionPorcentaje = $strComisionPorcentaje."%";
                  $strComisionMonto = "$".Util::formatearConSeparadorMiles($strComisionMonto);
                  $strComision .= "<b>A Quien:</b> ".$strComisionAQuien."<br />";
                  $strComision .= "<b>Porcentaje:</b> ".$strComisionPorcentaje."<br />";
                  $strComision .= "<b>Monto:</b> ".$strComisionMonto."<br />";
                }

                $strOpciones .= "<a href=\"#\" onclick=\"abrirFormularioPago({idPago:'".$intIdPago."', idUsuario:'".$intIdUsuario."'})\" title=\"Editar\"><i class=\"icol-pencil\"></i></a>&nbsp;&nbsp;";

                $arrEliminar = array(
                  "idRegistro" => $intIdPago,
                  "urlAjax" => "Usuario.Ajax",
                  "opcionAjax" =>"EliminarPago",
                  "urlRespuesta" => "Usuario.AdmRegistroPago",
                  "parametrosUrlRespuesta" => array(
                                               "idUsuario" => $intIdUsuario
                                              )
                );
                $opcionesEliminar = Util::jsonOpcionesEliminar($arrEliminar);
                $strOpciones .= "<a href=\"#\" onclick=\"eliminarRegistro(".$opcionesEliminar.")\"><i class=\"icol-cross\"></i></a>";

                $retorno .="<tr>";
                $retorno .="  <td>".$strFechaPago."</td>";
                $retorno .="  <td>".$strMonto."</td>";
                $retorno .="  <td>".$strDetalle."</td>";
                $retorno .="  <td>".$strComision."</td>";
                $retorno .="  <td>".$strOpciones."</td>";
                $retorno .="</tr>";
              }

              $retorno .="  </tbody>";
              $retorno .="</table>";
            }

        } catch (Exception $e) {
            $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="EliminarPago">
    private function eliminarPago() {
        $retorno = "";
        $id = urldecode($this->Request["id"]);
        $urlRespuesta = urldecode($this->Request["urlRespuesta"]);
        $parametrosUrlRespuesta = urldecode($this->Request["parametrosUrlRespuesta"]);
        $json = "";

        try {
            $oPagoBLL = new PagoBLL();
            $mensaje = "";
            $tipoMensaje = "";

            $resultado = $oPagoBLL->eliminar($id);
            $id = "-1";

            if (!Util::isNullOrEmpty($resultado) && !is_numeric($resultado)) {
                $tipoMensaje = Util::MENSAJE_ERROR;
                $mensaje = $resultado;
            } else {
                $tipoMensaje = Util::MENSAJE_OK;
                $mensaje = "El registro fue eliminado con &eacute;xito";
            }

            $arrParametros = json_decode($parametrosUrlRespuesta);
            $arg = Util::encriptarUrl(array(
                        "id" => $arrParametros->idUsuario,
                        "tipoMensaje" => $tipoMensaje,
                        "mensaje" => $mensaje
                            )
            );

            $json .="{";
            $json .=" \"urlRespuesta\":\"" . Util::escaparComillasJS($urlRespuesta . "&a=" . $arg) . "\"";
            $json .="}";

            $retorno = $json;
        } catch (Exception $e) {
            $retorno = Sistema::CODIGO_ERROR;
        }
        return $retorno;
    }

//</editor-fold>


    public function onLoad($param) {
        parent::onLoad($param);
        $opcion = urldecode($this->Request["op"]);
        $response = $this->getResponse();

        try {
            switch ($opcion) {
                case "Eliminar":
                    $respuesta = $this->eliminar();
                    break;
                case "DibujarGaleriaImagenes":
                    $respuesta = $this->dibujarGaleriaImagenes();
                    break;
                case "EliminarRecursoEscort":
                    $respuesta = $this->eliminarRecursoEscort();
                    break;
                case "ObtenerRegiones":
                    $respuesta = $this->obtenerRegiones();
                    break;
                case "ObtenerComunasPorRegion":
                    $respuesta = $this->obtenerComunasPorRegion();
                    break;
                case "ObtenerPagosPorUsuario":
                    $respuesta = $this->obtenerPagosPorUsuario();
                    break;
                case "EliminarPago":
                    $respuesta = $this->eliminarPago();
                    break;
                default:
                    $respuesta = Sistema::CODIGO_ERROR;
                    break;
            }
            $response->write($respuesta);
        } catch (Exception $e) {
            $response->write(Sistema::CODIGO_ERROR);
        }
    }

}

?>
